#pragma once

#include "BaseChannel.h"
#include <memory>
#include <vector>

class ChannelManager
{
public:
    ~ChannelManager() = default;

    static ChannelManager& get_instance()
    {
        static ChannelManager instance;
        return instance;
    }

    void add_channel(std::unique_ptr<BaseChannel>&);
    std::unique_ptr<BaseChannel> get_channel(const std::string&);

private:
    ChannelManager() = default;

    std::vector<std::unique_ptr<BaseChannel>> channels_;
};